package scala.day02

object Demo09Map {
  def main(args:Array[String]):Unit = {
    /**
      * map k v 格式
      * 默认不可变
      */
      //可以通过这种方式构建一个二元组："002"->"李四"
    val map = Map(("001","张三"),("002","李四"),("003",("王五")))
    println(map)
    //可以通过key获取value
    //如果key不存在就会报错
    println(map("001"))
    //可以通过这种方法实现如果不存在key就会返回默认值
    println(map.getOrElse("005","默认值"))
    println(map.getOrElse("002","默认值"))
    val map1 = Map(("001",23),("002",24),("003",25),("004",25))
    //将年龄加1
    /**
      * map：将map中的元素传给后面的函数，产生一个新的map，函数的参数是一个二元组
      * mapValues:将map中所有value传给后面的函数，返回一个新的map
      */
    val map2: Map[String, Int] = map1.map((kv:(String,Int)) => {
      val key: String = kv._1
      val value: Int = kv._2
      //返回一个二元组
      (key,value+1)
    })
    println(map2)
    //mapValues
    val map3: Map[String, Int] = map2.mapValues((value:Int)=>value+1)
    println(map3)
  }
}
